site_name: PixivFE Documentation
docs_dir: doc
site_description: >-
  Documentation for PixivFE
nav:
  - "Home": "index.md"
  - "Instance list": "instance-list.md"
  - "Public image proxies": "public-image-proxies.md"
  - "Known quirks": "known-quirks.md"
  - "Hosting":
    - "hosting/index.md" # Leave without title
    - "Environment variables": "hosting/environment-variables.md"
    - "Hosting PixivFE": "hosting/hosting-pixivfe.md"
    - "Hosting an image proxy server for Pixiv": "hosting/image-proxy-server.md"
    - "Obtaining the PIXIVFE_TOKEN cookie": "hosting/obtaining-pixivfe-token.md"
  - "Development":
    - "dev/index.md" # Leave without title
    - "Coding tips": "dev/coding-tips.md"
    - "Design flaws": "dev/design-flaws.md"
    - "Feature ideas": "dev/feature-ideas.md"
    - "Guidelines": "dev/guidelines.md"
    - "Helpful resources": "dev/helpful-resources.md"
    - "Roadmap": "dev/roadmap.md"
    - "Testing": "dev/testing.md"
    - "Features":
      - "Exponential backoff in PixivFE": "dev/features/exponential_backoff.md"
      - "Caching": "dev/features/caching.md"
      - "Novels": "dev/features/novels.md"
      - "Tracing flamegraph": "dev/features/tracing-flamegraph.md"
      - "User customization": "dev/features/user-customization.md"
      - "Pixiv app API": "dev/features/app-api.md"
      - "Internationalization": "dev/features/i18n.md"
    - "Archive":
      - "Framework migration": "dev/archive/framework-migration.md"
repo_name: VnPower/PixivFE
repo_url: https://codeberg.org/VnPower/PixivFE
edit_uri: _edit/v2/doc/
copyright: GFDL-1.3-or-later
theme:
  name: material
  language: en
  palette:
    # -- Light mode
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: custom
      accent: indigo
      toggle:
        icon: material/brightness-7
        name: Switch to dark theme
    # -- Dark mode
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: custom
      accent: indigo
      toggle:
        icon: material/brightness-4
        name: Switch to light theme
  icon:
    logo: simple/pixiv
    repo: simple/codeberg
  favicon: favicon.png
  features:
    # -- Navigation
    # Instant loading
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#instant-loading
    - navigation.instant

    # Instant prefetching (sponsor only)
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#instant-prefetching
    # - navigation.instant.prefetch

    # Progress indicator
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#progress-indicator
    - navigation.instant.progress

    # Anchor tracking
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-tracking
    - navigation.tracking

    # Sticky navigation tabs
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#sticky-navigation-tabs
    - navigation.tabs
    - navigation.tabs.sticky

    # Navigation sections
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections
    - navigation.sections

    # Navigation expansion
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-expansion
    - navigation.expand

    # Section index pages
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#section-index-pages
    - navigation.indexes

    # -- Table of contents
    # Anchor following
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-following
    - toc.follow

    # Back-to-top button
    # src: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#back-to-top-button
    - navigation.top

    # -- Code blocks
    # Code copy button
    # src: https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-copy-button
    - content.code.copy

    - navigation.footer

    - content.action.edit

    - content.code.annotate

plugins:
  # -- The search plugin adds a search bar to the header, allowing users to search your documentation.
  # src: https://squidfunk.github.io/mkdocs-material/plugins/search/
  - search:
      enabled: true
  - git-revision-date-localized:
      enabled: true
      type: date
      enable_creation_date: true
  - table-reader
  - glightbox:
       effect: fade
       auto_caption: true
       caption_position: bottom
  # -- mkdocs-redirects plugin to create page redirects
  - redirects:
      redirect_maps:
        'environment-variables.md': 'hosting/environment-variables.md'
        'hosting-pixivfe.md': 'hosting/hosting-pixivfe.md'
        'hosting-image-proxy-server.md': 'hosting/image-proxy-server.md'
        'obtaining-pixivfe-token.md': 'hosting/obtaining-pixivfe-token.md'
        # Archived documents
        'dev/framework-migration.md': 'dev/archive/framework-migration.md'

markdown_extensions:
  - admonition
  - toc:
      permalink: true
      permalink_title: Anchor link to this section for reference

  - tables
  # -- Enable extended support for images
  # src: https://squidfunk.github.io/mkdocs-material/reference/images/
  - attr_list
  - md_in_html
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - footnotes

  # -- Python Markdown Extensions
  # The BetterEm extension improves the detection of Markup to emphasize text
  - pymdownx.betterem

  # Caret, Mark & Tilde
  - pymdownx.caret
  - pymdownx.mark
  - pymdownx.tilde

  # The Details extension makes the Admonition call-outs collapsible, allowing them to be opened and closed by the user
  - pymdownx.details
  # The Highlight extension adds support for syntax highlighting of code blocks and inline code blocks
  # src: https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight
  - pymdownx.highlight:
      use_pygments: true
      pygments_lang_class: true
      auto_title: true
      linenums: true
      linenums_style: table
      anchor_linenums: true
      line_spans: __span
  - pymdownx.inlinehilite
  - pymdownx.keys
  - pymdownx.smartsymbols
  - pymdownx.snippets
  - pymdownx.superfences
  # The Tabbed extension allows the usage of content tabs, a simple way to group related content and code blocks under accessible tabs.
  - pymdownx.tabbed:
      alternate_style: true
      combine_header_slug: true
  # The Tasklist extension allows for the usage of GitHub Flavored Markdown inspired task lists.
  - pymdownx.tasklist:
      custom_checkbox: true
      clickable_checkbox: true

extra_javascript:
  # -- JavaScript files for sortable tables
  # src: https://squidfunk.github.io/mkdocs-material/reference/data-tables/#sortable-tables
  - "https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"
  - js/tablesort.js

extra_css:
  # -- For custom PixivFE color scheme
  # src: https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#custom-colors
  - css/extra.css

extra:
  social:
    - icon: simple/codeberg
      link: https://codeberg.org/VnPower/PixivFE
      name: PixivFE on Codeberg
